<template>
  <div>
    <h1>{{id? '编辑':'新增'}}管理员</h1>
    <el-form
      :model="model"
      :rules="adminRules"
      ref="adminRef"
      label-width="120px"
      @submit.native.prevent="save"
    >
      <el-form-item label="用户名" prop="username">
        <el-input v-model="model.username"></el-input>
      </el-form-item>
      <el-form-item label="密码" prop="password">
        <el-input v-model="model.password" type="password"></el-input>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" native-type="submit">保存</el-button>
      </el-form-item>
    </el-form>
  </div>
</template>

<script>
export default {
  props: {
    id: {}
  },
  data() {
    return {
      model: {
        username: "",
        password: ""
      },
      adminRules: {
        username: [
          { required: true, message: "请输入用户名", trigger: "blur" }
        ],
        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
      }
    };
  },
  methods: {
    save() {
      this.$refs.adminRef.validate(async valid => {
        if (!valid) {
          return this.$message.error("必填项不能为空");
        }
        let res;
        if (this.id) {
          res = await this.$http.put(
            `/rest/admin_users/${this.id}`,
            this.model
          );
        } else {
          res = await this.$http.post("/rest/admin_users", this.model);
        }
        this.$router.push("/admin_users/list"); // 创建完成之后跳转到列表
        this.$message({
          type: "success",
          message: "保存成功"
        });
      });
    },
    async fetch() {
      const res = await this.$http.get(`/rest/admin_users/${this.id}`); // 根据ID获取分类名称
      this.model = res.data;
    }
  },
  created() {
    this.id && this.fetch();
  }
};
</script>

<style>
</style>